import book.BookList;
import operations.IOperation;
import user.AdminUser;
import user.NormalUser;
import user.User;

import java.util.Scanner;

public class Main {
    public static User login() {
        Scanner scanner = new Scanner(System.in);

        System.out.println("请输入你的名字:>");
        String userName = scanner.nextLine();
        System.out.println("请输入你的身份: 1.管理员   2.普通用户:>");
        int choice = scanner.nextInt();
        if(choice==1) {
            return new AdminUser(userName);// AdminUser对象传进userName,
                                    // 然后执行子类构造方法
                                    // 1、调用父类构造方法进行初始化userName
                                    // 2、创建并初始化从父类继承的接口数组
        }else if(choice==2){
            return new NormalUser(userName);
        }else{
            return null;
        }

    }

    public static void test(){
        //0、数据准备
        //给bookList数组先装3本书
        BookList bookList = new BookList();


        //1、登录
        //发生向上转型
        User user = login();
        if(user==null)
        {
            System.out.println("输入错误,退出系统!");
            return;
        }

        while(true) {
            //2、打印菜单, 返回选择
            //发生多态 (也发生了动态绑定)
            int choice = user.menu();

            //3、操作图书
            //确定操作对象(增删查等)
            user.doOperation(choice,bookList);
        }
    }


    public static void main(String[] args) {
        test();//利用test去测试
    }
}

